<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>

    <script>

        var arr = [5,4,3,2,1] ;

        // 第一轮
        //   保证第一个位置上的值最小

        //   拿第一个位置上的数与后面所有的值比较

        // for(var i = 1 ; i < arr.length ; i++) {
        //     if(arr[0] > arr[i]) {
        //         // 交换
        //         var t = arr[0] ;
        //         arr[0] = arr[i] ;
        //         arr[i] = t ;
        //     }
        // }

        // 5 4   4 5 3 2 1
        // 4 3   3 5 4 2 1
        // 3 2   2 5 4 3 1
        // 2 1   1 5 4 3 2


        // 
        // for(var j = 0 ; j < arr.length - 1 ; j++) {
        //     // i=j+1 拿第i个值与后面所有的值进行比较
        //     for(var i = j + 1 ; i < arr.length ; i++) {
        //         if(arr[i] > arr[i]) {
        //             // 交换
        //             var t = arr[j] ;
        //             arr[j] = arr[i] ;
        //             arr[i] = t ;
        //         }
        //     }

        // }



        // // 优化   交换次数太多了
        // //   找到更小的值，但是不交换，一直找到最小的
        // var min = 0 ;
        // for(var i = 1 ; i < arr.length ; i++) {
        //     if(arr[min] > arr[i]) {
        //         min = i ;
        //     }
        // }

        // // 循环结束之后min就是记录的最小位置的下标
        // console.log(arr[min]);


        // // 最小的值必须放在第一个位置上
        // if(min !== 0) {
        //     var t = arr[min] ;
        //     arr[min] = arr[0] ;
        //     arr[0] = t ;
        // }


        // // 第二轮

        // var min = 1 ;
        // for(var i = 2 ; i < arr.length ; i++) {
        //     if(arr[min] > arr[i]) {
        //         min = i ;
        //     }
        // }

        // // 循环结束之后min就是记录的最小位置的下标
        // console.log(arr[min]);


        // // 最小的值必须放在第一个位置上
        // if(min !== 1) {
        //     var t = arr[min] ;
        //     arr[min] = arr[1] ;
        //     arr[1] = t ;
        // }



        // // 第三轮
        
        // var min = 2 ;
        // for(var i = 2 ; i < arr.length ; i++) {
        //     if(arr[min] > arr[i]) {
        //         min = i ;
        //     }
        // }

        // // 循环结束之后min就是记录的最小位置的下标
        // console.log(arr[min]);


        // // 最小的值必须放在第一个位置上
        // if(min !== 2) {
        //     var t = arr[min] ;
        //     arr[min] = arr[2] ;
        //     arr[2] = t ;
        // }


        for(var j = 0 ; j < arr.length - 1;  j++) {
            var min = j ;
            for(var i = j + 1 ; i < arr.length ; i++) {
                if(arr[min] > arr[i]) {
                    min = i ;
                }
            }

            // 循环结束之后min就是记录的最小位置的下标
            console.log(arr[min]);


            // 假设第j个位置上的数最小，如果比较发现不一样就交换
            if(min !== j) {
                var t = arr[min] ;
                arr[min] = arr[j] ;
                arr[j] = t ;
            }
        }


        // 0 5 4 3 2 1  10

        // 5 4   记录下标1
        // 4 3   记录下标2


        // 找数组中最大的值

    </script>
    
</body>
</html>